import pandas as pd
from pandasai import Agent
from pandasai.llm.openai import OpenAI

# 读取 CSV 文件，使用原始字符串避免转义问题
df = pd.read_csv(r"D:\stock_qiqi..csv")
# 将 日期 列转换为日期时间格式
df['日期'] = pd.to_datetime(df['日期'])
# 设置 日期 列为索引
df.set_index('日期', inplace=True)

# 配置 Deepseek 模型
OpenAI._supported_chat_models.append('deepseek-chat')
llm_openai = OpenAI(
    api_base='https://api.deepseek.com/v1',
    api_token='sk-d57a50bd4d19428583093ee15d3e4510',  # 替换为实际的 API 令牌
    model='deepseek-chat'
)

# 创建 Agent (禁用图表)
agent = Agent(dfs=[df], config={"llm": llm_openai, "save_charts": False})

# 对股价进行数据分析，为投资决策提供支持（明确要求不要图表）
investment_analysis_prompt = "基于数据对股价进行分析，评估潜在风险和市场机会，为投资决策提供建议。请用中文回答，并且不要生成图表，仅提供文字报告。"
print("股价投资分析建议：")
# 确保输出为纯文本格式
try:
    investment_analysis_response = agent.chat(investment_analysis_prompt, output_type="string")
    print(investment_analysis_response)
    
    # 额外防护：删除可能生成的临时图表文件
    import os
    chart_files = [f for f in os.listdir('.') if f.endswith('.png')]
    for file in chart_files:
        if os.path.exists(file):
            os.remove(file)
except Exception as e:
    print(f"生成报告时出错: {str(e)}")
